package br.furb.controllers;

import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.model.ManagedBean;

import br.furb.jpa.dao.DAOFactory;
import br.furb.jpa.dao.MidiaDAO;
import br.furb.jpa.dao.UsuarioDAO;
import br.furb.jpa.persistence.GenericPersistenceException;
import br.furb.jpa.persistence.OrderType;
import br.furb.models.Midia;
import br.furb.models.Usuario;

@ManagedBean(name = "usuarioBean")
public class UsuarioBean {

	private Usuario usuario;
	private List<Usuario> usuarios;

	@PostConstruct
	public void init() {
		usuario = new Usuario();
		usuarios = new ArrayList<Usuario>();
	}

	public String excluir(Usuario usuario) throws GenericPersistenceException {
		UsuarioDAO dao = (UsuarioDAO) DAOFactory.getInstance().createDAO(
				Usuario.class);
		dao.delete(usuario);
		return "sucesso";
	}

	public String salvar() throws GenericPersistenceException {
		UsuarioDAO dao = (UsuarioDAO) DAOFactory.getInstance().createDAO(
				Midia.class);
		dao.save(usuario);
		refreshMidias();
		return "sucesso";
	}

	private void refreshMidias() {
		usuarios = new ArrayList<Usuario>();
	}

	public List<Usuario> getMidias() throws GenericPersistenceException {

		usuarios = new ArrayList<Usuario>();
		UsuarioDAO dao = (UsuarioDAO) DAOFactory.getInstance().createDAO(
				Usuario.class);
		usuarios = dao.search(OrderType.Asc);
		return usuarios;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}

}
